import csv


def txt_to_csv(txt_filepath, csv_filepath):
    """
    将Groceries.txt转换为CSV文件
    :param txt_filepath: 输入txt文件路径
    :param csv_filepath: 输出CSV文件路径
    """
    with open(txt_filepath, 'r', encoding='utf-8') as txt_file, \
            open(csv_filepath, 'w', newline='', encoding='utf-8') as csv_file:

        csv_writer = csv.writer(csv_file)
        # 写入CSV表头（可选，根据需求决定是否保留）
        csv_writer.writerow(['transaction_id', 'items'])

        for line in txt_file:
            line = line.strip()
            # 跳过空行和表头行（如第一行"items"）
            if not line or line == '"items"':
                continue

            # 分割交易ID和商品集合（处理格式："1" "{商品1,商品2,...}"）
            parts = line.split('" "')  # 按'" "'分割ID和商品
            if len(parts) != 2:
                continue  # 跳过格式异常行

            # 提取交易ID（去除前后引号）
            transaction_id = parts[0].strip('"')
            # 提取商品集合（去除前后大括号和引号，分割商品）
            items_str = parts[1].strip('"{}')
            items = [item.strip() for item in items_str.split(',')] if items_str else []

            # 写入CSV：一行存储交易ID和商品（商品用逗号分隔）
            csv_writer.writerow([transaction_id, ','.join(items)])


if __name__ == "__main__":
    # 请修改为你的文件路径（相对路径或绝对路径）
    TXT_FILE = "Groceries.txt"
    CSV_FILE = "Groceries.csv"

    txt_to_csv(TXT_FILE, CSV_FILE)
    print(f"转换完成！CSV文件已保存至：{CSV_FILE}")